/**
 * @author 20120202 by hzx
 * @class UserInfoSmsFormComm
 * @extends Ext.form.FormPanel
 * @description 增加普通用户表单
 */
UserInfoSmsFormComm = Ext.extend(Ext.form.FormPanel, {
	myid : "myid",
	cur_user_id : "user_id",
	cur_user_type : "user_type",
	cur_check_flag:"check_flag" , 
	cur_fee_type:"fee_type" , 
	cur_record_flag:"record_flag",
	cur_recv_flag:"recv_flag",
	myReadOnly : false, // 自定义属性是否只读
	myDisabled : false, // 自定义属性是否禁用
	comboStoreSex : null, // 下拉列表框数据源(性别)
	// 构造方法
	constructor : function(_config) {
		if (_config == null) {
			_config = {};
		}
		Ext.apply(this, _config);
		// 下拉列表框数据源(性别)
		this.comboStoreSex = new Ext.data.JsonStore({
					url : "dataDict.do",
					baseParams : {
						"operator" : "showDataDictByKey",
						"sekey" : "sex"
					},
					fields : ["datakey", "value","remark"],
					autoLoad : true
				});
		
		// 拷贝父类的构造方法到当前对象
		UserInfoSmsFormComm.superclass.constructor.call(this, {
			id : this.myid,
			border : false, // 不要边框
			fileUpload : true, // 允许上传
			autoScroll : true,
			bodyStyle : "backgroundColor:#DFE8F6;",
			items : [{
				xtype : "panel",
				frame : true,
				border : false,
				bodyStyle : "backgroundColor:#DFE8F6;",
				items : [{
					layout : "column",
					border : false,
					items : [{
								columnWidth : .33,
								labelWidth : 100,
								layout : "form",
								defaults : {
									xtype : "textfield",
									allowBlank : false, // 不允许为空
									anchor : "80%"
								},
								items : [{
											id : "parent_id_comm",
											fieldLabel : "代理用户ID*",
											name : "uis.parentId",
											invalidText : "请输入小于等于30位的代理用户名",
											readOnly : this.cur_user_type == "2",
											//value : this.cur_user_type == "2" ? this.cur_user_id : "",
											editable : false,
											validator : function(){
												return this.getValue().length <= 30 ;
											}
										},{
											fieldLabel : "登录ID*",
											name : "uis.userId",
											invalidText : "请输入小于等于30位的用户名",
											validator : function(){
												return this.getValue().length <= 30 ;
											}
										},{
											id : "pwd1_comm",
											fieldLabel : "密码*",
											inputType : "password",
											name : "userPass1",
											allowBlank : false // 不允许为空
										},{
											fieldLabel : "确认密码*",
											inputType : "password",
											name : "uis.password",
											invalidText : "两次输入的密码不一致", // 验证失败出现的提示
											allowBlank : false, // 不允许为空
											validator : function() { // 验证
//													var _pwd1 = this.ownerCt.items.itemAt(1).getValue(1);
													var _pwd1 = Ext.getCmp("pwd1_comm").getValue();
													var _pwd2 = this.getValue();
													return _pwd2.length <= 32 && _pwd1 == _pwd2;
											}
										},{
											fieldLabel : "手机*",
											name : "uis.cellphone",
											invalidText : "手机长度不对(请注意全角半角字符)",
											validator : function() {
											 	return /^1\d{10}$/gi.test(this.getValue());
											}
										},{
											allowBlank : true, //允许为空
											fieldLabel : "地址",
											name : "uis.address"
										},{
											xtype : "hidden",
											name : "uis.userType",
											value : "3"
										}]
							}, {
								columnWidth : .33,
								labelWidth : 55,
								layout : "form",
								defaults : {
									xtype : "textfield",
									allowBlank : false, // 不允许为空
									anchor : "80%"
								},
								items : [{
											fieldLabel : "姓名*",
											name : "uis.userName",
											invalidText : "请输入小于30位的用户姓名",
											validator : function(){
												return this.getValue().length < 30 ;
											}
										},{
											allowBlank : true, // 允许为空
											fieldLabel : "电话",
											name : "uis.telephone"
										},{
											id : "combo_sex_comm",
											allowBlank : true, // 允许为空
											validator : function(){
												return this.getValue().trim() != "";
											},
											xtype : "combo", // 下拉列表框
											editable : false,
											fieldLabel : "性别",
											emptyText : "请选择性别",
											readOnly : this.myReadOnly, // 自定义属性(是否只读)
											disabled : this.myDisabled, // 自定义属性(是否禁用)
											edittable : false,
											triggerAction : "all", // 显示所有数据
											hiddenName : "uis.sex",
											displayField : "remark", // 要显示的值
											valueField : "value",
											store : this.comboStoreSex,
											invalidText :"必须选择其一"
										},{
											allowBlank : true,
											fieldLabel : "电子邮件",
											name : "uis.email",
											invalidText : "请输入小于等于50位的电子邮件",
											validator : function(){
												return this.getValue().length <= 50 ;
											}
										},{
											frame : true,
											allowBlank : true, // 允许为空
											xtype : "textfield",
											name : "uis.remark",
											fieldLabel : "备注",
											invalidText : "请输入小于等于100位的备注",
											validator : function(){
												return this.getValue().length <= 100 ;
											}
										}]
							}]
					}]
			}]
		});
		this.comboStoreSex.on('load',function(store,record,opts){  
			var combo = Ext.getCmp("combo_sex_comm");  
			var firstValue = store.getRange()[0].data.value;//这种方法可以获得第一项的值  
			combo.setValue(firstValue);//选中  
		});
		var parent_id = Ext.getCmp("parent_id_comm");
		if(this.cur_user_type == "2"){
			parent_id.setValue(this.cur_user_id);
		}
	},
	/**
	 * 用户角色表单提交方法
	 * 
	 * @param {}
	 *            _url 提交的url
	 */
	mySubmit : function(_url) {
		this.getForm().submit({
					url : _url,
					waitTitle : "数据传输",
					waitMsg : "数据传输中,请稍等...",
					// 成功回调方法
					success : this.onSuccess,
					// 失败回调方法
					failure : this.onFailure,
					// 作用域
					scope : this

				})
	},

	/**
	 * 请求成功的回调方法
	 * 
	 * @param {}
	 *            _form
	 * @param {}
	 *            _action
	 */
	onSuccess : function(_form, _action) {
		if (_action.result.success == true) {
			// 调用当前组建的父容器的onCloseWinClick()事件
			this.ownerCt.onCloseWinClick();
			/**
			 * _urgp 是 hrmfactory.userrole.userRole.jsp
			 * 中UserRoleGridPanel类的实例
			 */
			_urgp.getStore().reload();
		}
	},

	/**
	 * 请求失败的回调方法
	 * 
	 * @param {}
	 *            _form
	 * @param {}
	 *            _action
	 */
	onFailure : function(_form, _action) {
		Ext.Msg.alert("系统消息", _action.result["errorMsg"]);
	},

	/**
	 * 获取form的值
	 * 
	 * @return {}
	 */
	getFormValues : function() {
		return new Ext.data.Record(this.getForm().getValues());
	},

	/**
	 * 给表单设置值
	 * 
	 * @param {}
	 *            _record
	 */
	setFormValues : function(_record) {
		this.getForm().loadRecord(_record);
	},

	/**
	 * 重置表单
	 */
	reset : function() {
		this.getForm().reset();
	}
});
